Systems and methods for controlling robotic stands during videoconference operation

ABSTRACT

Systems and methods are disclosed for selecting and orienting a computing device mounted on a robotic stand for videoconferences. For example, a method for operating a robotic stand supporting a computing device is disclosed, which includes displaying, by a display of a remote device, a control interface depicting a physical location that includes a plurality of robotic stands with respective computing devices. The method further includes providing, responsive to a user of the remote device interacting with the control interface, a selection instruction selecting a region of the physical location for viewing with one of the plurality of robotic stands with respective computing devices, and generating, by the control interface, a positioning instruction based on the selected region of the physical location, the positioning instruction configured to orient the robotic stand including the computing device determined to be available to face the region of the physical location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to pending U.S. patent application Ser.No. 14/593,871 filed Jan. 9, 2015, which application claims the benefitof U.S. provisional patent application No., 61/925,982, filed Jan. 10,2014, and U.S. provisional patent application No. 62/015,899, filed Jun.23. 2014. The aforementioned applications are incorporated herein byreference, in their entirety, for any purpose.

TECHNICAL FIELD

The present disclosure relates generally to videoconferencing. Moreparticularly, various examples of the present disclosure relate to arobotic stand and systems and methods for controlling the stand during avideoconference.

BACKGROUND

Videoconferencing allows two or more locations to communicatesimultaneously or substantially simultaneously via audio and videotransmissions. Videoconferencing may connect individuals (suchpoint-to-point calls between two units, also known as videophone calls)or groups (such as conference calls between multiple locations). Inother words, videoconferencing includes calling or conferencing on aone-on-one, one-to-many, or many-to-many basis.

Each site participating in a videoconference typically hasvideoconferencing equipment capable of two-way audio and videotransmissions. The videoconferencing equipment generally includes a dataprocessing unit, an audio input and output, a video input and output,and a network connection for data transfer. Some or all of thecomponents may be packaged into a single piece of equipment.

SUMMARY

Examples of the disclosure may include a method for operating a roboticstand supporting a computing device during a videoconference establishedbetween the local computing device and one or more remote computingdevices. The method may include displaying, by a display of a remotedevice, a control interface depicting a conference room that includes aschematic of a conference room table and a plurality of attendeepositions, providing, responsive to a user of the remote deviceinteracting with the control interface, a positioning instruction toorient the robotic stand about at least a pan axis or a tilt axis sothat a display and a camera of the computing device faces at least oneattendee position, wherein the robotic stand supporting the computingdevice is physically located in the conference room depicted by thecontrol interface, and transmitting, by the remote device, over acommunication network, a signal indicative of the positioninginstruction to the robotic stand.

Examples of the disclosure may include automatically tracking an objectduring a videoconference with a computing device supported on a roboticstand. The method may include receiving an image with a camera,transmitting an electrical signal containing the pixel information ofthe image to at least one processing unit, determining, by the at leastone processing unit, a location of a source of the pixel information ofthe image, and rotating the robotic stand about at least one of a panaxis or a tilt axis without further user interaction to aim thecomputing device at the location of the source of the pixel informationof the image.

Examples of the disclosure may include a method for operation of arobotic stand supporting a computing device during a videoconference.The method may include displaying a control interface depicting aphysical location that includes a plurality of robotic stands withrespective computing devices, providing a selection instructionselecting a region of the physical location for viewing with one of theplurality of robotic stands with respective computing devices, whereineach of the plurality of computing devices at least includes a displayand a camera, and connecting to at least one of the plurality of roboticstands including a respective computing device, wherein the at least oneof the plurality of robotic stands including a respective computingdevice is selected based at least on proximity to the region of thephysical location.

Examples of the disclosure may include a method for operation of arobotic stand supporting a computing device during a videoconference.The method may include displaying, on a display of a remote device, acontrol interface showing a plurality of views available from therobotic stand supporting the computing device, providing, responsive toa user of the remote device interacting with the control interface, aselection command selecting one of the plurality of views, andtransmitting, by the remote device over a communications network, asignal indicative of the selection command to the robotic standsupporting the computing device.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate examples of the disclosure and,together with the general description given above and the detaileddescription given below, serve to explain the principles of theseexamples.

FIG. 1 is a schematic diagram of a videoconference network system inaccordance with an embodiment of the disclosure.

FIG. 2A is a schematic diagram of a remote computing device inaccordance with an embodiment of the disclosure.

FIG. 2B is a schematic diagram of a local computing device in accordancewith an embodiment of the disclosure.

FIG. 3 is an example interface for interacting with one or more localcomputing devices in accordance with an embodiment of the disclosure.

FIG. 4 is an example schematic view of a workspace interface inaccordance with an embodiment of the disclosure.

FIG. 5 is an example schematic view of a conference room which may bedisplayed as a user interface in accordance with an embodiment of thedisclosure.

FIG. 6A is an example static object editing interface of one conferenceroom editing mode in accordance with an embodiment of the disclosure.

FIG. 6B is an example dynamic object editing interface of anotherconference room editing mode in accordance with an embodiment of thedisclosure.

FIG. 7 is a schematic diagram of a grid control user interface showingstored locations in accordance with an embodiment of the disclosure.

FIG. 8 is a schematic diagram of a mobile grid control user interfaceshowing stored locations in accordance with an embodiment of thedisclosure.

FIG. 9 is a schematic diagram of a robotic stand in accordance with anembodiment of the disclosure.

FIG. 10A is a side elevation view of a local computing device mountedonto a robotic stand in accordance with an embodiment of the disclosure.

FIG. 10B is a rear isometric view of a local computing device mountedonto a robotic stand in accordance with an embodiment of the disclosure.

FIG. 11 is a front elevation view of a robotic stand in accordance withan embodiment of the disclosure.

FIG. 12A is a side elevation view of a local computing device mountedonto a robotic stand in a tilted configuration in accordance with anembodiment of the disclosure.

FIG. 12B is a schematic diagram of a local computing device mounted ontoa robotic stand in a tilted configuration in accordance with anembodiment of the disclosure.

FIG. 13 is a flowchart illustrating a set of operations for orienting alocal computing device supported on a robotic stand in accordance withan embodiment of the disclosure.

FIG. 14 is a flowchart illustrating a set of operations for remotelycontrolling an orientation of a local computing device supported on arobotic stand in accordance with an embodiment of the disclosure.

It should be understood that the drawings are not necessarily to scale.In certain instances, details that are not necessary for anunderstanding of the disclosure or that render other details difficultto perceive may have been omitted. In the appended drawings, similarcomponents and/or features may have the same reference label. It shouldbe understood that the claimed subject matter is not necessarily limitedto the particular examples or arrangements illustrated herein.

DETAILED DESCRIPTION

The present disclosure describes examples of robotic stands for use inconducting a videoconference. The robotic stand, a local computingdevice, and a remote computing device may be in communication with oneanother during the videoconference. The local computing device may bemounted onto the robotic stand and may be electrically coupled to thestand (e.g. in electronic communication with the stand). A remoteparticipant in the videoconference, or other entity, may control theorientation of the local computing device by interacting with the remotecomputing device and generating motion commands for the robotic stand.For example, the remote participant may generate pan and/or tiltcommands using the remote computing device and transmit the commands tothe local computing device, the robotic stand, or both. The roboticstand may receive the commands and rotate the local computing deviceabout a pan axis, a tilt axis, or both in accordance with the commandsreceived from the remote participant. As such, a user of a remotecomputing device may control the orientation of a local computing devicein real-time during a live videoconference. Additionally, the roboticstand may be commanded by the user to autonomously perform certaintasks, such as follow a speaker if the speaker is moving around whiletalking, move between two set positions based on a direction of aspeaker, establish preset locations as the robotic stand scans a room,etc. Moreover, one or more robotic stands and local computing devicesmay be located in various locations in and around an office complex thatmay be operated by one or more remote users to interact with individualsin and around the office complex.

FIG. 1 is a schematic diagram of a videoconference system 100 inaccordance with an embodiment of the disclosure. The videoconferencesystem 100 may include one or more remote computing devices 105, acommunications network 110, one or more servers 115, a local computingdevice 120, and a robotic stand 125. Although not depicted, thevideoconference system 100 may include network equipment (such asmodems, routers, and switches) to facilitate communication through thenetwork 110.

The one or more remote computing devices 105 may include, but are notlimited to, a desktop computer, a laptop computer, a tablet, a smartphone, or any other computing device capable of transmitting andreceiving videoconference data. Each of the remote computing devices 105may be configured to communicate over the network 110 with any number ofdevices, including the one or more servers 115, the local computingdevice 120, and the robotic stand 125. The network 110 may comprise oneor more networks, such as campus area networks (CANs), local areanetworks (LANs), metropolitan area networks (MANs), personal areanetworks (PANs), wide area networks (WANs), cellular networks, and/orthe Internet. Communications provided to, from, and within the network110 may be wired and/or wireless, and further may be provided by anynetworking devices known in the art, now or in the future. Devicescommunicating over the network 110 may communicate by way of variouscommunication protocols, including TCP/IP, UDP, RS-232, and IEEE 802.11.

The one or more servers 115 may include any type of processing resourcesdedicated to performing certain functions discussed herein. For example,the one or more servers 115 may include an application or destinationserver configured to provide the remote and/or local computing devices105, 120 with access to one or more applications stored on the server.In some embodiments, for example, an application server may beconfigured to stream, transmit, or otherwise provide application data tothe remote and/or local computing devices 105, 120 such that the devices105, 120 and an application server may establish a session, for examplea video client session, in which a user may utilize on the remote orlocal computing devices 105, 120 a particular application hosted on theapplication server. As another example, the one or more servers 115 mayinclude an Internet Content Adaptation Protocol (ICRP) server, which mayreduce consumption of resources of another server, such as anapplication server, by separately performing operations such as contentfiltering, compression, and virus and malware scanning. In particular,the ICAP server may perform operations on content exchanged between theremote and/or local computing devices 105, 120 and an applicationserver. As a further example, the one or more servers 115 may include aweb server having hardware and software that delivers web pages andrelated content to clients (e.g., the remote and local computing devices105, 120) via any type of markup language (e.g., HyperText MarkupLanguage (HTML) or eXtensible Markup Language (XML)) or other suitablelanguage or protocol.

The local computing device 120 may include a laptop computer, a tablet,a smart phone, or any other mobile or portable computing device that iscapable of transmitting and receiving videoconference data. The localcomputing device 120 may be a mobile computing device including adisplay or screen that is capable of displaying video data. The localcomputing device 120 may be mounted onto the robotic stand 125 to permita user of one of the remote computing devices 105 to remotely orient thelocal computing device 120 during a videoconference. For example, a userof one of the remote computing devices 105 may remotely pan and/or tiltthe local computing device 120 during a videoconference, for example bycontrolling the robotic stand 125. The local computing device 120 may beelectrically coupled to the robotic stand 125 by a wired connection, awireless connection, or both. For example, the local computing device120 and the robotic stand 125 may communicate wirelessly usingBluetooth,

FIG. 2A is a schematic diagram of an example remote computing device.FIG. 2B is a schematic diagram of an example local computing device.FIG. 6 is a schematic diagram of an example robotic stand. As shown inFIGS. 2A, 2B, and 6, the remote computing device(s) 105, the localcomputing device 120, and the robotic stand 125 may each include amemory 205, 255, 605 in communication with one or more processing units210, 260, 610, respectively. The memory 205, 255, 605 may include anyform of computer readable memory, transitory or non-transitory,including but not limited to externally or internally attached hard-diskdrives, solid-state storage (such as NAND flash or NOR flash media),tiered storage solutions, storage area networks, network attachedstorage, and/or optical storage. The memory 205, 255, 605 may storeexecutable instructions for execution by the one of more processingunits 210, 260, 610, which may include one or more Integrated Circuits(ICs), a Digital Signal Processor (DSP), an Application Specific IC(ASIC), a controller, a Programmable Logic Device (PLD), a logiccircuit, or the like. The one or more processing units 210, 260, 610 mayinclude a general-purpose programmable processor controller forexecuting application programming or instructions stored in memory 205,255, 605. The one or more processing units 210, 260, 610 may includemultiple processor cores and/or implement multiple virtual processors.The one or more processing units 210, 260, 610 may include a pluralityof physically different processors. The memory 205, 255, 605 may beencoded with executable instructions for causing the processing units210, 260, 610, respectively to perform acts described herein. In thismanner, the remote computing device, local computing device, and/orrobotic stand may be programmed to perform functions described herein.

It is to be understood that the arrangement of computing componentsdescribed herein is quite flexible. While a single memory or processingunit may be shown in a particular view or described with respect to aparticular system, it is to be understood that multiple memories and/orprocessing units may be employed to perform the described functions.

With reference to FIGS. 2A and 2B, the remote computing device(s) 105and the local computing device 120 may include a web browser module 215,265, respectively. The web browser modules 215, 265 may includeexecutable instructions encoded in memory 205, 255 that may operate inconjunction with one or more processing units 210, 260 to providefunctionality allowing execution of a web browser on the computingdevices 105, 120, respectively. The web browser module 215, 265 may beconfigured to execute code of a web page and/or application. The webbrowser module 215, 265 may comprise any web browser application knownin the art, now or in the future, and may be executed in any operatingenvironment or system. Example web browser applications include InternetExplorer®, Mozilla Firefox, Safari®, Google Chrome®, or the like thatenables the computing devices 105, 120 to format one or more requestsand send the requests to the one or more servers 115.

With continued reference to FIGS. 2A and 2B, the remote computingdevice(s) 105 and the local computing device 120 may include a videoclient module 220, 270, respectively. Each video client module 220, 270may be a software application, which may be stored in the memory 205,255 and executed by the one or more processing units 210, 260 of thecomputing devices 105, 120, respectively. The video client modules 220,270 may transmit video data, audio data, or both through an establishedsession between the one or more remote computing devices 105 and thelocal computing device 120, respectively. The session may beestablished, for example, by way of the network 110, the servers) 115,the web browser modules 215. 265, or any combination thereof. In oneimplementation, the session is established between the computing devices105, 120 via the Internet.

With further reference to FIGS. 2A and 2B, the remote computingdevice(s) 105 and the local computing device 120 may include a controlmodule 225, 275, respectively. Each control module 225, 275 may be asoftware application, which may be stored in the memory 205, 255 andexecuted by the one or more processing units 210, 260 of the computingdevices 105, 120, respectively. Each control module 225, 275 maytransmit and/or receive motion control data through an establishedsession between the one or more remote computing devices 105 and thelocal computing device 120, respectively. The motion control data maycontain motion commands for the robotic stand 125.

In some implementations, the video client modules 220, 270 and thecontrol modules 225, 275 are standalone software applications existingon the computing devices 105, 120, respectively, and running in parallelwith one another. In these implementations, the video client modules220, 270 may send video and audio data through a first sessionestablished between the video client modules 220, 270. The controlmodules 225, 275 may run in parallel with the video client modules 220,270, respectively, and send motion control data through a second sessionestablished between the control modules 225, 275. The first and secondsessions may be established, for example, by way of the network 110, theserver(s) 115, the web browser modules 215, 265, or any combinationthereof. In one implementation, the first and second sessions areestablished between the respective modules via the Internet.

In some implementations, the video client module 220, 270 and thecontrol module 225, 275 are combined together into a single softwareapplication existing on the computing devices 105, 120, respectively. Inthese implementations, the video client modules 220, 270 and the controlmodules 225, 275 may send video data, audio data, and/or motion controldata through a single session established between the computing devices105, 120. The single session may be established, for example, by way ofthe network 110, the server(s) 115, the web browser modules 215, 265, orany combination thereof. In one implementation, the single session isestablished between the computing devices 105, 120 via the Internet.

With specific reference to FIG. 2A, the one or more remote computingdevices 105 may include a motion control input module 230. In someimplementations, the motion control input module 230 may be combinedtogether with the video client module 220, the control module 225, orboth into a single software application. In some implementations, themotion control input module 230 may be a standalone software applicationexisting on the one or more remote computing devices 105. The motioncontrol input module 230 may permit a user of a remote computing device105 to control the movement of the local computing device 120. Forexample, the motion control input module 230 may provide variousgraphical user interfaces for display on a screen of the remotecomputing device 105. A user may interact with the graphical userinterface displayed on the remote computing device 105 to generatemotion control data, which may be transmitted to the local computingdevice 120 via a session between the computing devices 105, 120. Themotion control data may contain motion commands generated from theuser's input into the motion control input module 230 and may be used toremotely control the orientation of the local computing device 120.

With specific reference to FIG. 2B, the local computing device 120 mayinclude a motion control output module 280. In some implementations, themotion control output module 280 may be combined together with the videoclient module 270, the control module 275, or both into a singlesoftware application. In some implementations, the motion control outputmodule 280 may be a standalone software application existing on thelocal computing device 120. The motion control output module 280 mayreceive motion control data from the video client module 220, thecontrol module 225, the motion control input module 230 (e.g., a userinterface module), the video client module 270, the control module 275,or any combination thereof. The motion control output module 280 maydecode motion commands from the motion control data. The motion controloutput module 280 may transmit the motion control data including motioncommands to the robotic stand 125 via a wired and/or wirelessconnection. For example, the motion control output module 280 maytransmit motion control data including motion commands to the stand 125via a physical interface, such as a data port, between the localcomputing device 120 and the stand 125 or wirelessly over the network110 with any communication protocol, including TCP/IP, UDP, RS-232, andIEEE 802.11. In one implementation, the motion control output module 280transmits motion control data including motion commands to the stand 125wirelessly via the Bluetooth communications protocol.

Although not depicted in FIGS. 2A and 2B, the one or more remotecomputing devices 105 and the local computing device 120 may include anynumber of input and/or output devices including but not limited todisplays, touch screens, keyboards, mice, communication interfaces, andother suitable input and/or output devices.

One or more remote computing devices 105 in conjunction with one or morelocal computing devices 105 mounted onto respective robotic stands 125may be used to form an interactive videoconference. The one or morelocal computing devices 120 mounted on their respective robotic stands125 may be placed at various locations on or around a conference roomtable, an office complex, and/or office workspaces. With regards to theconference table, one, some, or all of the remaining locations aroundthe conference room table may be occupied by an attendee or anotherlocal computing device 120 mounted on a robotic stand 125. In such alayout, the attendees around the conference room table and the usersoperating the local computing devices 120 mounted on the robotic stands125 may interact with one another. The local computing devices 120mounted on the robotic stands 125 may move around (pan and tilt) so thatthe users of the local computing devices 120 may see the otherindividuals and other local computing devices 120 situated around thetable. The movement of the local computing devices 120 via the roboticstands 125 may be controlled by an associated user at a remote computingdevice 105 using one or more control interfaces. The control interfacesmay be associated with the motion control input module 230, the controlmodule 225, the video client module 220, or combinations thereof. Thecontrol interfaces may provide the user with the ability to manipulatethe direction the local computing device 120 is facing by movement ofthe respective robotic stand 125. The control interface or interfacesmay implement a user interface that may provide the remote user aschematic or other view of the setting in which the local computingdevice 120 is located. For example, if the videoconference is in aconference room, the layout of the conference room may be shown as aplan view in the interface.

With regards to an office complex and office workspaces, user interfacesmay depict a schematic view of the area surrounding a local computingdevice 120 mounted to a robotic stand 125 located at a location withinthe office complex, e.g., a break room, or within a workspace, e.g., acollection of cubicles and/or work tables. A user of a remote computingdevice 105 may select an interface associated with an area of the officecomplex or an office workspace to view and/or interact with individualsaround the selected local computing device 120 mounted on a respectiverobotic stand 125. The user of the remote computing device 105 mayadditionally manipulate the orientation of the selected local computingdevice 120 vie the respective robotic stand 125 and access informationregarding individuals located around that area. For example, a user ofthe remote computing device may select a local computing device 120 inan entry way of an office complex and be provided social mediainformation associated with individuals located in the entry way. Thesocial media information may be provided by the server 115 of thevideoconferencing system 100, for example.

Additionally or alternatively, the user, through the same or additionalinterfaces, may input conditions that will allow the local computingdevice 120 and the robotic stand 125 to operate autonomously inaccordance with said conditions. For example, a user at a remotecomputing device 105 may set conditions for the local computing device120 to automatically move (pan and/or tilt) to face whatever partner (orother local computing device) is speaking.

FIG. 3 is an example office interface 300 for interacting with one ormore local computing devices in accordance with an embodiment of thedisclosure. The interface 300 may be used to interface with one or morelocal computing devices 120 mounted on a robotic stand 125 located invarious locations in and around an office complex, for example. A userat a remote computing device 105 may select the interface 300 from a webbrowser module, for example, such as the web browser module 215. Theuser may then connect with and interact with various locations around anoffice complex, for example, that may be available through the interface300. The remote computing device 105 and the local computing device 120in combination with the robotic stand 125 may be programmed to implementthe interface 300 so that the user at their remote computer device 105interacting with the interface 300 may manipulate one or more localcomputing devices 120. The interface 300 may be included with the motioncontrol input module 230, the control module 225, the video clientmodule 220, or combinations thereof.

The office interface 300, or simply the interface 300, may have multiplepanes for a user to interact with to operate one or more local computingdevices 120 mounted on a respective robotic stand 125 placed in variouslocations around an office complex. For ease of reference herein, alocal computing device 120 mounted on a robotic stand 125 may bereferred to as a local computing device 120/robotic stand 125combination. The main view 302 of the interface 300 shows a particularlocation around an office building that is viewable by a local computingdevice 120/robotic stand 125 combination. For example, the view 302 isof a sitting area in an office and may just be one view available by theassociated local computing device 120/robotic stand 125 combinationdisplaying the view 302 to a user at a remote computing device 105. Theview 302 may be a preset view for this particular local computing device120/robotic stand 125 combination. The pane 304 of the interface 300 mayshow other preset views available for this particular local computingdevice 120/robotic stand 125 combination.

A user, via their remote computing device 105 displaying the interface300, may select one of the two images shown in the pane 304 to move theviewing area of the local computing device 120 by the robotic stand 125to view those areas within the office complex. The pictures/icons shownin the pane 304 may be a still frame taking at a prior time, atinstallation of the local computing device 120/robotic stand 125combination for example, or they may dynamically update based on thelast time the local computing device 120/robotic stand 125 combinationwas viewing that direction. The pane 304 depicts other available presetsthat have yet to be populated, which are shown by the dotted lines. Auser may manually move the local computing device 120/robotic stand 125combination and store other views in the unused preset locations.

The icons shown in pane 306 offer a user functions for manipulating thelocal computing device 120/robotic stand 125 combination. For example,the icon at the far right may, by selecting, cause the local computingdevice to autoscan the viewspace and store locations of individualsappearing in the viewspace. These stored locations may then be selectedby a user to automatically move the local computing device 120/roboticstand 125 combination to view that individual. The middle icon, shown asa face in a segmented square, if selected, may center the viewspace onan individual. If there is only one individual shown, then the localcomputing device may center the main view 302 on that individual. If,however, there are multiple options, then the user may be prompted toselect the desired target for centering.

The icon on the left in the pane 306 shows a face with a bubble to thetop left. This icon, when selected, may cause the interface 300 todisplay information regarding one or all of the individuals displayed inthe main view 302, as depicted by the name above the head of theindividual shown in the main view 302. This information may implementfacial recognition to determine the identity of the individual, from anemployee database for example, and allow the local computing device 120,the server 115, or the remote computing device 105 to access variousdatabases to deliver information regarding the one or more individuals.For example, the remote computing device 105 may access the individualsLinkedIn™ profile and display any common contacts the user of the remotecomputing device 105 and the individual shown in the main view 302 mayhave. Additionally, any number of databases and social media websitesmay be accessed and corresponding information overlaid on the interface300 for viewing by the user of the remote computing device 105. Theinformation accessed may include a whole range of inputs, such as theindividual's Twitter™ feed, Facebook™ postings, or any other publiclyavailable information.

The pane 308 of the interface 300 may display other local computingdevices 120/robotic stand 125 combinations at various other locationsaround the office complex, for example, and their status. Their statusmay show if they are available for using and operating. As discussedabove, the status may be unavailable, available, or in use but othersmay join. As before, the status may be determined by the color of thelabel for a particular location. In addition to the status of thevarious locations, the pane 308 may show other settings for each of thelocations. Next to the locations are two symbols, a phone and a lock,which may alert a user to settings of the particular location. Thephone, depending on its color, may alert a user that the local computingdevice 120/robotic stand 125 combination at a particular location is setto auto-answer when a user attempts to access it. In auto-answer mode,the user may be automatically given access by selecting the picture forthat location. If auto-answer is disabled, a user may require anindividual in proximity to the location to answer the call and grant theuser access. Further, the lock picture may inform a user that the localcomputing device 120/robotic stand 125 combination at that location mayrequire a password to be entered before access is to be granted.

A user may select the picture of an available location that includes oneor more computing device 120/robotic stand 125 combinations as shown inthe pane 308 to transfer to that location. If the user were to selectthe location labeled “Electrical Lab,” for example, the user may then beprompted to enter a password before being granted access to the localcomputing device 120/robotic stand 125 combination located in theElectrical Lab. The interface 300 may then show any preset locations forthat particular location. For example, the interface 400 of FIG. 4 maybe displayed in the main view 302 or the interface 400 may replace theinterface 300 on a user's remote computing device 105 to show theavailable locations. When one of the other available local computingdevice 120/robotic stand 125 combinations is selected, the view shown inthe main view 302 may change to an associated camera view or interfaceschematic of the area.

The pane 310 may show other local computing devices 120/robotic stand125 combinations available to or known by a user, their location, andtheir status. A user, for example, may have a local computing device120/robotic stand 125 combination at their house that they may accessthrough the web portal. These additional locations may be associatedwith a user profile and stored as such.

The pane 312 may give a user control functions of local computing device120. For example, a user may be able to adjust a volume level andmicrophone level of the local computing device 120, end a session orcall with that particular device. Additionally, other views of theoffice or other interfaces may be accessed through s pane. For example,a plan view of the office complex showing the location of the variouslocal computing devices may be accessed by selecting the icon on theleft. Various other functionalities may be added to the pane 312 at anytime through software updates.

FIG. 4 is an example schematic view of a workspace interface 400 inaccordance with an embodiment of the disclosure. The workspace interface400, which may simply be referred to as the interface 400, may bedisplayed as a user interface for interacting with various individualslocated in the workspace using the videoconferencing system 100. Theinterface 400 may be a part of a videoconferencing software orstandalone software executed by the local computing device 120, theremote computing device 105 and/or the servers 115 of the system 100.The interface 400 may allow a user stationed at a remote computingdevice 105 to manipulate one or more of the local computing devices120/robotic stands 125 combinations.

A user of a remote computing device 105 may select the view 400 from,for example, a list of available views, as shown in the pane 308 of theinterface 300. The interface 400 may allow the user at the remotecomputing device 105 to interact with the various local computingdevices 120/robotic stands 125 combinations and workspaces showntherein. The interface 400 may be part of one or more of the controlmodules 225, 275, the web browser module 215, the motion control inputmodule 230, the video client module 220, or combinations thereof. Theinterface 400 and all corresponding functions accessible therein may beprogrammed so that the user at their remote computing device 105interacting with the interface 400 may manipulate one or more localcomputing devices 120/robotic stands 125 combinations. The exampleschematic interface 400 shows a plan view of a workspace with a numberof desks and stations shown throughout the workspace and may be referredto as the workspace interface 400 or simply the interface 400. Theinterface 400 also shows the location of several local computing devices120/robotic stand 125 combinations.

Three local computing device 120/robotic stand 125 combinations areshown in the workspace labeled 120/125-1, 120/125-2, and 120/125-3. Thefield of view of a camera associated with the local computing device 120is depicted by the dashed lines. The three local computing device120/robotic stand 125 combinations may be accessed by one or more usersfrom their respective remote computing devices 105 in order to interactwith individuals located at various positions within the workspacedepicted by the interface 400. Additionally, not shown in FIG. 4, eachlocal computing device 120/robotic stand 125 combination icon may beshown in different colors that inform a potential user of theirrespective state of use. For example, a local computing device that isshown in red may mean that it is in use and that no other user may join.Green may indicate that the local computing device 120/robotic stand 125combination is free and available, and yellow may indicate that thelocal computing device 120/robotic stand 125 combination currently hasat least one user but is available for multiple users to join. A usermay select one of the local computing device 120/robotic stand 125combinations, as long as it is available, to interact with localpositions by clicking (by mouse or touch screen) the desired localcomputing device 120/robotic stand 125 combination. Once the session hasbegun, the user may operate the local computing device 120 to move itsrobotic stand 125 and face a desired direction and/or individual withinthe workspace. Alternatively, a user may select a position on theinterface 400, Oliver for example, and the user interface 400 may selectthe best local computing device 120/robotic stand 125 combination forinteracting with Oliver. For example, if device 120/125-1 is available,then the user interface 400 may select that device for the user.However, if device 120/125-1 is not available, then the user interface400 may use the next best option, which may be the device 120/125-2 inthis example. As such, a user may have two options for selecting adevice for interacting with the various positions within theworkspace—by selecting a specific local computing device 120/roboticstand 125 combination or by selecting the desired position within theworkspace and letting the user interface 500 determine what device touse. It is described that the interface 400 is making determinations,but the determinations may be made by the server 115, the control module225, the motion control input module 230, or combinations thereof.

When multiple users are sharing a single local computing device120/robotic stand 125 combination, the control of that device may beimplemented in various manners. For example, the user that initiated thevideoconference may maintain control until they terminate their feed oruntil they grant another user control. Alternatively, control mayperiodically transfer from one user to another in a determined or randomfashion so that control varies during the duration of thevideoconference. Various other methods may be known and implemented bythose of skill in the art such as voting by all users for a specificview to place the local computing device 120.

Additionally, each of the positions shown in the workspace may be storedby the local computing device 120/robotic stand 125 combinations so thata user of a remote computing device 105 associated with a localcomputing device 120 may command the robotic stand 125 to move the localcomputing device 120 to view a specific position by selecting thatposition on the interface 400. The selection of the position may bethrough the click of a mouse cursor on that position or by touching thatposition if the remote computing device 105 includes a touchscreendisplay. Coordinates for the pan, tilt, or other direction of the localcomputing device/robotic stand combination may be associated with eachof the locations shown in FIG. 4, for example. Selecting one of theillustrated positions in the displayed interface may cause the roboticstand 125 to pan, tilt, and/or rotate to a position such that theillustrated individual may be viewed by the remote user of the localcomputing device 105.

FIG. 5 is an example schematic view of a conference room which may bedisplayed as a user interface 500 in accordance with an embodiment ofthe disclosure. The interface 500 may be used with the videoconferencingsystem 100, and may be accessed through the interface 300 or it may beaccessed directly through a web-portal or link sent to a remote user.The example interface 500 shows a plan view of a conference room tablewith a number of locations shown around the perimeter of the table andmay be referred to as the conference room interface 500 or simply theinterface 500. The interface 500 may be part of a videoconferencingsoftware or standalone software executed by the local computing device120, the remote computing device 105 and/or the servers 115 of thesystem 100. The conference room interface 300 may allow a user of aremote computing device 105 to manipulate a local computing device120/robotic stand 125 combination located at a position in theconference room as represented by the interface 500. The interface 500may be accessible to the user through the web browser module 215, thecontrol module 225, the motion control input module 230, the videoclient module 220, or combinations thereof.

The local computing device 120/robotic stand 125 combination is shown onone side of the table and is shown to be pointed in a specificdirection. The field of view of a camera associated with the localcomputing device 120 is depicted by the dashed lines and shows that thelocal computing device 120 is facing the Partner 2 location. The Partnerlocations 1-5 may each be occupied by an attendee or another localcomputing device 120 mounted to a respective robotic stand 125.Additionally, each of the Partner locations 1-5 may be stored by theinterface 500 so that a user of a remote computing device 105 associatedwith the local computing device 120 may command the robotic stand 125 tomove the local computing device 120 to view a specific Partner locationby selecting that Partner location on the interface. The selection ofthe Partner location may be through the click of a mouse cursor on thatPartner or by touching that Partner location if the remote computingdevice 105 includes a touchscreen display. Coordinates for the pan,tilt, or other direction of the local computing device/robotic standcombination may be associated with each of the locations shown in FIG.5, for example. Selecting one of the illustrated partners in thedisplayed interface may cause the robotic stand to pan, tilt, and/orrotate to a position such that the illustrated partner may be viewed bythe remote user of the local computing device.

The illustrated Partners (and in some examples, other elements which maybe displayed in the schematic view such as, but not limited to, whiteboards, chalkboards, displays, screens, or other objects in the room)may accordingly be dynamic elements having coordinates associated withthem for causing the robotic stand to orient the local computing devicetoward the object. Coordinates of the Partner locations and any otherelements may need to be stored by the interface 500 in the memory 255 ofthe local computing device 120 during a setup stage, for example, whichmay be performed by a user from a remote computing device 105 or from atechnology administrator installing the local computing device120/robotic stand 125 combination in the conference room. The storedlocations, as discussed, may be used as icons for moving the localcomputing device 120/robotic stand 125 combination by a user with asingle selection of the icon in the interface 300.

FIGS. 6A and 6B are example interface schematics of two editing modes ofthe conference room mode. FIG. 6A is an example static object editinginterface 600 of one conference room editing mode in accordance with anembodiment of the disclosure and FIG. 6B is an example dynamic objectediting interface 610 of another conference room editing mode inaccordance with an embodiment of the disclosure. The two editing modesmay be part of the conference room mode and may be implemented when avideoconferencing session occurs, or prior to the occurrence of thesession. Before the videoconferencing session takes place, a technologyadministrator or a physical (or virtual) attendee to the videoconferencesession may configure the conference room mode of the system 100. Thetechnology administrator may configure the conference room mode throughthe local computing device 120. The configuration may utilize the staticobject editing interface 600 to configure a physical layout of theconference room, e.g., the shape (square, round, oval) and size of theconference room table and the number and location of the Partnerpositions. This configuration may help virtual attendees to get the feelof the room and have an understanding of where the other virtual/realattendees are located with respect to their local computing device 120'slocation in the actual conference room. Additionally, the technologyadministrator may also need to install the local computing device120/robotic stand 125 combinations at various positions around theconference room table.

After the static configuration of the conference room is configured, thetechnology administrator may then configure the conference room mode fordynamic objects using the dynamic object editing interface 610. Theediting interface 610 may be used to configure the local computingdevice 120/robotic stand 125 combinations that are physically in theconference room to have preset locations for each of the Partnerlocations around the conference room table. Each stored location mayinclude a pan location and a tilt amount so that the local computingdevice 120 is properly facing any individual or other local computingdevice 120 at each of the occupied Partner locations. The dynamicconfiguration may take place before any or all of the attendees are inplace, but may be done once they are all seated. For example, if a tallattendee is located at Partner location 4 (of FIG. 5), then the dynamicobject editing interface 610 may be used to set a pan location so thatthe local computing device 120 pans to Partner location 4 and a tiltamount, likely up in this instance, may also be set. Once the tilt andpan for Partner location 4 is set, the user of the local computingdevice 120 through the conference room mode interface of FIG. 5 mayselect the Partner 4 location and the local computing device 120 by therobotic stand 125 may be automatically moved to face the attendee inthat location. As shown in FIG. 6B, a pan location and tilt amount maybe associated with each Partner location around the conference roomtable schematic. The slider to the right of the Partner image is foradjusting the tilt. The circle to the left of the Partner images head isfor deleting that position indicating that that location is notoccupied. The image of the local computing device 120 may be rotated toassociate a pan location for each of the Partner locations.

Alternatively or additionally, the technology administrator setting upthe physical conference room with the local computing device 120/roboticstand 125 combination may only configure the static objects of the room,e.g., the size and shape of the conference room table and the potentialPartner locations. Then, once the videoconference has begun, the user ofthe local computing device 120 may use the dynamic object editinginterface to set a pan location and a tilt angle for each attendee.

The users of the local computing devices 120 through their respectiveremote computing devices 105 may have other options through theconference room mode. The conference room mode interface 500 may allow auser to set their local computing device 120/robotic stand 125combination to automatically track an attendee so that if the attendeewere to get up and move around the local computing device 120 maycontinuously face that attendee. The tracking could be done bymonitoring and using the changing pixel patterns of the video cameraassociated with the local computing device 120. Alternatively, the localcomputing device 120 may employ audio tracking via the speaker arrayassuming the attendee on the move is also speaking. This function may beuseful if there is a white board in the conference room and an attendeegets up to utilize the white board while speaking.

The movement of the local computing device 120 may also allow a user toinstruct it to track the face and eyes of a Partner when that Partner isin view. For example, if facial and eye tracking are engaged and theperson in view looks off to one side and up, the local computing device120 may instruct the robotic stand 125 to follow the eye/face movementof that person so that the user of the local device 120 may see whatcaught that person's attention. It may be another attendee at aconference room table or another individual walking into the room. Inthis way, the user of the local computing device 120 may be able tobetter interact with the surrounding of the local computing device 120.

On the other hand, the local computing device 120/robotic stand 125 maybe limited in its viewable area and/or control by the user of the remotecomputing device based on access privileges. The access privileges maybe assigned to the remote user based on their association with the grouphosting the local computing device 120/robotic stand 125 combination.Limiting the viewable area, or virtual blinders, may be implemented whena videoconference is initiated with individuals from anotherorganization, for example, and occurring in a sensitive location. Bylimiting the viewable area or limiting the control of the otherindividual, the videoconference may occur without worry of the personfrom the other organization viewing sensitive information.

The conference room mode via the interface 500 may also allow the userof the local computing device 120 to control various aspects of theconference room, if permission to do so is granted. The user may be ableto adjust lighting levels, volume of speakers in the conference room andcontrol of a projector system. For instance, if the user is giving apresentation to be displayed on a screen, the user may be able tocontrol the presentation sequence, adjust lighting levels down forbetter viewing, and alter the volume on a local speaker. Additionally,if the user may also have access and control of a speakerphone in theconference room that she can use to call other individuals during thevideoconference without asking an attendee in the conference room toassist.

FIG. 7 is a schematic diagram of a grid control user interface 700showing stored locations in accordance with an embodiment of thedisclosure. The grid view 700 may be overlaid on top of the video feedshown at a remote computing device 105 or may be an interface of thecontrol software of the videoconferencing system 100. The grid view 700may be switched to from another view/interface of the control software.Further, any positions saved on a previous interface or mode of thecontrol software may also show up after switching to the grid view 700.For example, if a user switched from the conference room mode as shownin FIG, 5 and three of the Partner locations were saved, then thosethree Partner locations would show up in the grid view 700. The savedPartner locations may be represented by the boxes 1-3. The user,however, may be prompted with a box asking if any or all of the savedpositions should be replicated in the new view. The user, at thatprompt, may be able to clear some or all of the saved positions.

FIG. 8 is a schematic diagram of a mobile grid control user interface800 showing stored locations in accordance with an embodiment of thedisclosure. The mobile interface 800 may be overlaid on top of the videofeed shown at a remote computing device 105 or may be an interface ofthe control software of the videoconferencing system 100. The mobileinterface 800 may be switched to from another view/interface of thecontrol software. Further, any positions saved on a previous interfaceor mode of the control software may also show up after switching to themobile interface 800. For example, if a user switched from the workspacemode as shown in FIG. 5 and three of the positions were saved, thenthose three positions would show up in the mobile interface 800. Thesaved positions may be represented by the circles 1-4. The user,however, may be prompted with a box asking if any or all of the savedpositions should be replicated in the new view. The user, at thatprompt, may be able to clear some or all of the saved positions.

The mobile view 800 offers additional control from a mobile device,which may allow a user on a tablet or smartphone to control the positionof a local computing device 120/robotic stand 125 combination. Inaddition to saving locations, as depicted by the filled in circle 2,which is displayed as a small colored dot at the top right of the uppergrid 802. Each stored position may have a different color thatcorresponds between the circles 1-4 and the small dots displayed on theupper grid 802. After a position is stored, a user may move the localcomputing device 120 with the robotic stand 125 to that position byeither selecting one of the circles 1-4 located in the bottom controlportion 804 or by selecting a corresponding small dot located in theupper grid 802.

Additionally, a user may be able to manually manipulate the view of thelocal computing device 120 by panning and/or tiling the device. A usermay control the robotic stand 125 of the local computing device 120either through the control buttons located in the bottom control portion804 or through the upper grid 802. When using the bottom buttons, theuser may hold a button pointing in the direction the user would like thelocal computing device to move. The length of time the user holds thebutton will determine the amount of movement of the device. Further, thedevice may not move until after the user removes pressure from thebutton. Button here refers to an icon or location of a touch screendevice. The button in the middle of the four control buttons may centerthe local computing device 120, e.g., center an individual in theviewing area.

The user may also move the local computing device 120 by placing afinger on the upper grid 802 and moving the finger in the direction theuser would like to move the local computing device 120 as shown by thecurrent position indicator and the goal position indicator vector labelson FIG. 8. The distance and direction on the upper grid 802 that theuser moves their finger (or stylus) may determine the movement and finallocation of the local computing device 120. The local computing device120, however, may not move until the user releases his finger from thetouch screen and/or upper grid 802.

The provided user interface examples may be implemented using anycomputing system, such as but not limited to a desktop computer, alaptop computer, a tablet computer, a smart phone, or other computingsystems. Generally, a computing system 105 for use in implementingexample user interfaces described herein may include one or moreprocessing unit(s) 210, and may include one or more computer readablemediums (which may be transitory or non-transitory and may beimplemented, for example, using any type of memory or electronic storage205 accessible to the computing system 105) encoded with executableinstructions that, when executed by one or more of the processingunit(s) 210, may cause the computing system 105 to implement the userinterfaces described herein. In some examples, therefore, a computingsystem 105 may be programmed to provide the example user interfacesdescribed herein, including displaying the described images, receivingdescribed inputs, and providing described outputs to a local computingdevice 120, a motorized stand 125, or both.

Further, the interfaces discussed above may also include keyboardshortcut commands and/or icons configured to make the local computingdevice 120/robotic stand 125 perform various predetermined actions. Thekeyboard shortcut commands and the clickable icons may be preset orconfigurable by a user and/or an administrator. The commands, using aninitiation mechanism (e.g. selecting an icon, typing a command), maycause the local computing device 120/robotic stand 125 to performmotion-based gestures that others would interpret as body language-typecommunication. For example, a user at a remote computer may click on abow icon on their view of the interface 300 that may cause the roboticstand 125 to move the local computing device 120 in an up and downforward arc to convey a bow. Other gestures may include shaking thelocal computing device up and down to signify a “yes” response and sideto side to signify a “no” response. The inclusion of icons or otherinterfaced for commanding the robotic stand to perform a selectedgesture may allow the local computing device 120/robotic stand 125combination an additional mechanism for conveying communication to theother user(s) located in the conference room or other venue.

An additional scenario for the videoconferencing system 100 may be wherea single user at a remote computing device is simultaneously interactingthrough and controlling multiple local computing devices 120/roboticstands 125 combinations. In this scenario the user may be prompted withan interface that shows a matrix of boxes with each box showing the viewof a respective local computing device 120. The user may be able toselect a box to manipulate the view of the associated local computingdevice 120.

Alternatively, when there are several remote users associated with theirown local computing device 120/robotic stand 125, each of the remoteusers may be able to view the video feed from one, some, or all of theother video feeds. Similar to above, each remote user may have a matrixof boxes on their interface with each box showing the view of arespective local computing device 120. In this operational mode, eachremote user may be granted varying degrees of control/access for each ofthe viewable local computing devices 120 shown on their matrix. Thedegrees of control/access may range from only viewing and listening tothe feed, being able to speak without sending video, to full access andcontrol to another local computing device 120.

Further, the software and interfaces for controlling the local computingdevice 120/robotic stand 125 combination may be web-based and accessiblefrom any remote computing device 105 with an internet connection. Theremote computing device 105 in this scenario could be physically locatedjust about anywhere. To take advantage of the full video conferencingcapabilities the remote computing device may need a video camera, butthe system 100 may operate without a video feed from a remote computingdevice 105. A user in this scenario may only need to be sent a link vieemail or text message that may be followed. The link may lead to aweb-based portal with all of the interfaces discussed herein accessible.The link may be sent from an administrator setting up thevideoconference or from another remote attendee. If sent by a remoteattendee, the remote attendee may be able to send a link that would pullup a portal that replicates the sender's portal, e.g., a matrix of otherviews, pre-configured conference room mode with Partner locations, etc.The sending user, however, may be able to set control levels for the newuser on any number of the available local computing devices 120.

With reference to FIG. 9, the robotic stand 125, which may be referredto as a motorized or remotely-controllable stand, may include a memory905, one or more processor units 910, a rotary actuator module 915, apower module 935, a sound module 955, or any combination thereof. Thememory 905 may be in communication with the one or more processor units910. The one or more processor units 910 may receive motion control dataincluding motion commands from the local computing device 120 via awired or wireless data connection. The motion control data may be storedin memory 905. The one or more processor units 910 may process themotion control data and transmit motion commands to a rotary actuatormodule 915. In some implementations, the one or more processor units 910include a multipoint control unit (MCU).

With continued reference to FIG. 9, the rotary actuator module 915 mayprovide control of an angular position, velocity, and/or acceleration ofthe local computing device 120. The rotary actuator module 915 mayreceive a signal containing motion commands from the one or moreprocessor units 910. The motion commands may be associated with one ormore rotational axes of the robotic stand 125.

With further reference to FIG. 9, the rotary actuator module 915 mayinclude one or more rotary actuators 920, one or more amplifiers 925,one or more encoders 930, or any combination thereof. The rotaryactuator(s) 920 may receive a motion command signal from the processorunit(s) 910 and produce a rotary motion or torque in response toreceiving the motion command signal. The amplifier(s) 925 may magnifythe motion command signal received from the processor unit(s) 910 andtransmit the amplified signal to the rotary actuator(s) 920. Forimplementations using multiple rotary actuators 920, a separateamplifier 925 may be associated with each rotary actuator 920. Theencoder(s) 930 may measure the position, speed, and/or acceleration ofthe rotary actuator(s) 920 and provide the measured data to theprocessor unit(s) 910. The processor unit(s) 910 may compare themeasured position, speed, and/or acceleration data to the commandedposition, speed, and/or acceleration. If a discrepancy exists betweenthe measured data and the commanded data, the processor unit(s) 910 maygenerate and transmit a motion command signal to the rotary actuator(s)920, causing the rotary actuator(s) 920 to produce a rotary motion ortorque in the appropriate direction. Once the measured data is the sameas the commanded data, the processor unit(s) 910 may cease generating amotion command signal and the rotary actuator(s) 920 may stop producinga rotary motion or torque.

The rotary actuator module 915 may include a servomotor or a steppermotor, for example. In some implementations, the rotary actuator module915 includes multiple servomotors associated with different axes. Therotary actuator module 915 may include a first servomotor associatedwith a first axis and a second servomotor associated with a second axisthat is angled relative to the first axis. The first and second axes maybe perpendicular or substantially perpendicular to one another. Thefirst axis may be a pan axis, and the second axis may be a tilt axis.Upon receiving a motion command signal from the processor unit(s) 910,the first servomotor may rotate the local computing device 120 about thefirst axis. Likewise, upon receiving a motion command signal from theprocessor unit(s) 910, the second servomotor may rotate the localcomputing device 120 about the second axis. In some implementations, therotary actuator module 915 may include a third servomotor associatedwith a third axis, which may be perpendicular or substantiallyperpendicular to the first and second axes. The third axis may be a rollaxis. Upon receiving a motion command signal from the processor unit(s)910, the third servomotor may rotate the local computing device 120about the third axis. In some implementations, a user of the remotecomputing device 105 may control a fourth axis of the local computingdevice 120. For example, a user of the remote computing device 105 mayremotely control a zoom functionality of the local computing device 120real-time during a videoconference. The remote zoom functionality may beassociated with the control modules 225, 275 of the remote and localcomputers 105, 120, for example.

Still referring to FIG. 9, the power module 935 may provide power to therobotic stand 125, the local computing device 120, or both. The powermodule 935 may include a power source, such as a battery 940, linepower, or both. The battery 940 may be electrically coupled to therobotic stand 125, the local computing device 120, or both. A batterymanagement module 945 may monitor the charge of the battery 940 andreport the state of the battery 940 to the processor unit(s) 910. Alocal device charge control module 950 may be electrically coupledbetween the battery management module 945 and the local computing device120. The local device charge control module 950 may monitor the chargeof the local computing device 120 and report the state of the localcomputing device 120 to the battery management module 945. The batterymanagement module 945 may control the charge of the battery 940 based onthe power demands of the stand 125, the local computing device 120, orboth. For example, the battery management module 945 may restrictcharging of the local computing device 120 when the charge of thebattery 940 is below a threshold charge level; the charge rate of thebattery 940 is below a threshold charge rate level, or both.

With continued reference to FIG. 9, the sound module 955 may include aspeaker system 960, a microphone array 965, a sound processor 970, orany combination thereof. The speaker system 960 may include one or morespeakers that convert sound data received from a remote computing device105 into sound waves that are decipherable by videoconferenceparticipant(s) at the local computing device 120. The speaker system 960may form part of an audio system of the videoconference system. Thespeaker system 960 may be integral to or connected to the robotic stand125,

The microphone array 965 may include one or more microphones thatreceive sound waves from the environment associated with the localcomputing device 120 and convert the sound waves into an electricalsignal for transmission to the local computing device 120, the remotecomputing device 105, or both during a videoconference. The microphonearray 965 may include three or more microphones spatially separated fromone another for triangulation purposes. The microphone array 965 may bedirectional such that the electrical signal containing the local sounddata includes the direction of the sound waves received at eachmicrophone. The microphone array 965 may transmit the directional sounddata in the form of an electrical signal to the sound processor 970,which may use the directional sound data to determine the location ofthe sound source. For example, the sound processor 970 may usetriangulation methods to determine the source location. The soundprocessor 970 may transmit the sound data to the processor unit(s) 910,which may use the source data to generate motion commands for the rotaryactuator(s) 920. The sound processor 970 may transmit the motion controlcommands to the rotary actuator module 915, which may produce rotarymotion or torque based on the commands. As such, the robotic stand 125may automatically track the sound originating around the local computingdevice 120 and may aim the local computing device 120 at the soundsource without user interaction. The sound processor 970 may transmitthe directional sound data to the local computing device 120, which inturn may transmit the data to the remote computing device(s) 105 for usein connection with a graphical user interface.

As explained above, various modules of the remote computing device(s)105, the local computing device 120, and the robotic stand 125 maycommunicate with other modules by way of a wired or wireless connection.For example, various modules may be coupled to one another by a serialor parallel data connection. In some implementations, various modulesare coupled to one another by way of a serial bus connection.

With reference to FIGS. 10A and 10B, an example local computing device1002 is mounted onto an example robotic stand 1004. The local computingdevice 1002 may be electrically coupled to the stand 1004 via a wiredand/or wireless connection. The local computing device 1002 is depictedas a tablet computer, but other mobile computing devices may besupported by the stand 1004.

The local computing device 1002 may be securely held by the roboticstand 1004 such that the stand 1004 may move the local computing device1002 about various axes without the local computing device 1002 slippingrelative to the stand 1004. The stand 1004 may include a vertical grip1006 that retains a lower edge of the local computing device 1002 (seeFIG. 10A). The stand 1004 may include horizontal grips 1008 that retainopposing side edges of the local computing device 1002 (see FIGS, 10Aand 10B). The vertical and horizontal grips 1006, 1008 may be attachedto an articulable arm or tiltable member 1010. The vertical grip 1006may be non-movable relative to the tiltable member 1010, whereas thehorizontal grips 1008 may be movable relative to the tiltable member1010. As shown in FIGS. 10B and 8, the horizontal grips 1008 may becoupled to the tillable member 1010 by elongate arms 1012. Thehorizontal grips 1008 may be rigidly or rotationally attached to freeends of the arms 1012. The other ends of the arms 1012 may be pivotallyattached to the tiltable member 1010 about pivot points 1014 (see FIG.8). The elongate arms 1012 may reside in a common plane (see FIGS. 10Aand 10B).

As shown in FIG. 11, the elongate arms 1012 may be biased toward oneanother. A spring may be concentrically arranged about the pivot axis1014 of at least one of the arms 1012 and may apply a moment 1016 to thearms 1012 about the pivot axis 1014. The moment 1016 may create aclamping force 1018 at the free ends of the arms 1012, which may causethe horizontal grips 1008 to engage opposing sides of the localcomputing device 1002 and compress or pinch the local computing device1002 between the horizontal grips 1008. In addition to applying alateral compressive force to the local computing device 1002, thehorizontal grips 1008 may apply a downward compressive force to thelocal computing device 1002 such that the device 1002 is compressedbetween the horizontal grips 1008 and the vertical grip 1006. Forexample, the horizontal grips 1008 may pivot in a cam-like motion and/orbe made of an elastomeric material such that, upon engagement withopposing sides of the local computing device 1002, the grips 1008 applya downward force to the local computing device 1002. As shown in FIG.12, the attached ends of the elongate arms 1012 may include matchinggear profiles 1018 that meshingly engage one another such that pivotalmovement of one of the arms 1012 about its respective pivot axis 1014causes pivotal movement of the other of the arms 1012 about itsrespective pivot axis 1014 in an opposing direction. This gear meshingallows one-handed operation of the opening and closing of the arms 1012.

With reference to FIG. 10B, the tiltable member 1010 may be rotationallyattached to a central body or riser 1020 of the stand 1004 about a tiltaxis 1022, which may be oriented perpendicularly to the pivot axis 1014of the elongate arms 1012. A rotary actuator module, such as aservomotor, may be placed inside the tiltable member 1010 and/or theriser 1020 of the stand 1004 and may move the member 1010 rotationallyrelative to the riser 1020, resulting in a tilting motion 1024 of thelocal computing device 1002 about the tilt axis 1022. As shown in FIG.11, a user input button 1025 may be coupled to the riser 1020. The userinput button 1025 may be electrically coupled to one or more of thestand components depicted in FIG. 9.

With continued reference to FIG. 10B, the riser 1020 may be rotationallyattached to a pedestal 1026. The riser 1020 may be swivelable relativeto the pedestal 1026 about a pan axis 1028, which may be orientedperpendicularly to the tilt axis 1022 of the tiltable member 1010 and/orthe pivot axis 1014 of the elongate arms 1012. A rotary actuator module,such as a servomotor, may be placed inside the riser 1020 and may movethe riser 1020 rotationally relative to the pedestal 1024, resulting ina pan motion 1030 of the local computing device 1002 about the pan axis1028.

With reference to FIGS. 10A, 10B, and 11, the pedestal 1026 may hemounted to a base 1032, such as a cylindrical plate, a tripod, or othersuitable mounting implement. The pedestal 1026 may be removeablyattached to the base 1032 with a base mount fastener 1034, which may beinserted through an aperture in the base 1032 and threaded into athreaded receptacle 1036 formed in the pedestal 1026. The base 1032 mayextend outwardly from the pan axis 1028 beyond an outer surface of theriser 1020 a sufficient distance to prevent the stand 1004 from tippingover when the local computing device 1002 is mounted onto the stand1004, regardless of the pan and/or tilt orientation 1024, 1030 of thecomputing device 1002. In some implementations, the pedestal 1026 may beformed as a unitary piece with the base 1032 and together referred to asa base. The components depicted schematically in FIG. 9 may be attachedto the tiltable member 1010, the riser 1020, the pedestal 1026, the base1032, or any combination thereof. In some implementations, the memory905, the processor unit(s) 910, the rotary actuator module 915, thepower module 935, the sound module 955, or any combination thereof maybe housed at least partially within the riser 1020.

With reference to FIGS. 12A and 12B, when mounted onto the stand 1004,the center of mass 1003 of the local computing device 1002 may belaterally offset from the tilt axis 1022 of the tiltable member 1010.The weight W of the local computing device 1002 may create a moment MIabout the tilt axis 1022, which may affect the operation of a rotaryactuator, such as a tilt motor, associated with the tilt axis 1022. Tocounteract the moment M1, a counterbalance spring 1036 may be used toneutralize the moment M1. The spring 1036 may make the tiltable member1010 and the local computing device 1002 neutrally buoyant. A first end1038 of the spring 1036 may be attached to the riser 1020, and a secondend 1040 of the spring 1036 may be attached to the tiltable member 1010.The first end 1038 of the spring 1036 may be rotationally mounted insidethe riser 1020 and may be offset from the tilt axis 1022 of the member1010 by a distance 1042. The second end 1040 of the spring 1036 may berotationally mounted inside the tiltable member 1010 and may be offsetfrom the tilt axis 1022 of the member 1010 by a distance 1044. Thespring force of the spring 1036 may create a moment M2 about the tiltaxis 1022 of the member 1010. The moment M2 may inversely match themoment M1, thereby neutralizing the weight W of the local computingdevice 1002 and facilitating operation of the rotary actuator associatedwith the tilt axis 1022.

FIG. 13 is a flowchart illustrating a set of operations 1300 fororienting a local computing device supported on a robotic stand inaccordance with an embodiment of the disclosure. At operation 1310, avideo session is established between a local computing device 120 and aremote computing device 105. The video session may be established by auser of the remote computing device 105 or a user of the local computingdevice 120 initiating a video client module 220, 270 associated with therespective computing device 105, 120. The video session may establish avideo feed between the computing devices 105, 120.

At operation 1320, the local computing device 120 is mounted onto arobotic stand 125, which operation may occur prior to, concurrentlywith, or subsequent to establishing the video session. To mount thelocal computing device 120 onto the robotic stand 125, a lower edge ofthe local computing device 120 may be positioned on a gripping member1006 coupled to the stand 125. Additional gripping members 1008 may bepositioned in abutment with opposing side edges of the local computingdevice 120, thereby securing the local computing device 120 to the stand125. The additional gripping members 1008 may be coupled to pivotablearms 1012, which may be biased toward one another. In someimplementations, a user of the local computing device 120 may pivot thearms 1012 away from one another by applying an outwardly-directed forceto one of the arms 1012. Once the free ends of the arms 1012 are spreadapart from one another a sufficient distance to permit the localcomputing device 120 to be placed between the gripping members 1008, thelocal computing device 120 may be positioned between the grippingmembers 1008 and the user may release the arm 1012 to permit the arms1012 to drive the gripping members 1008 into engagement with opposingsides of the local computing device 120.

At operation 1330, the local computing device 120, the robotic stand125, or both may receive motion control data. In some situations, themotion control data is received from the remote computing device 105.The motion control data may be transceived between the remote and localcomputing devices 105, 120 by way of the respective control modules 225,275. In some situations, the motion control data is received from asound module 955. The sound module 955 may receive sound waves with amicrophone array 965 and transmit an electrical signal containing thesound data to a sound processor 970, which may determine a location of asource of the sound waves. The sound processor 970 may transmit thesound data to a processing unit 910, which may process the sound datainto motion control data. Although referred to as separate components,the sound processor 970 and the processing unit 910 may be a singleprocessing unit. The motion control data may include motion commandssuch as positioning instructions. The positioning instructions mayinclude instructions to pan the local computing device 120 about a panaxis in a specified direction, to tilt the local computing device abouta tilt axis in a specified direction, or both.

Additionally or alternatively, one of the respective control modules225, 275 may receive motion control commands from the web browsermodules 215, 265 via the processors 210, 260. The web browser modules215, 265 may be operating in the workspace interface module as depictedin FIG. 4. A local administrative operator that possibly performed theoperation 1320 (setting up the local computing device) may initiallyset-up the workspace view. As depicted in FIG. 3, the administrativeoperator may configure the workspace, the number and locations ofpositions, and the placement of the various local computing devices120/robotic stands 125. Further, the administrative operator may alsoinitially set up the pan and tilt locations for each partner locatedaround the workspace. However, a remote user may set up the pan and tiltsetting for each partner location along with any other fixture aroundthe conference room, e.g., white boards, projection screens, etc.

After configuration of the workspace view, a local user may then sendmotion control commands through the conference room view interface toview and interact with the other conference attendees and to view anyadditional fixtures of interest. Additionally, the remote user mayconfigure his settings of the conference room interface so that thelocal computer 120/robotic stand 125 combination automatically orientsitself to face a speaking partner around the workspace. This automaticcontrol may be operated via the sound module 655.

At operation 1340, the robotic stand 125 may orient the local computingdevice 120 according to the motion control data and/or the conferenceroom interface settings. The processing unit 910 may actuate a rotaryactuator 920 associated with at least one of a pan axis 1028 or a tiltaxis 1022 by transmitting a signal containing a trigger characteristic(such as a certain current or voltage) to the rotary actuator 920. Theprocessing unit 910 may continue to transmit the signal to the rotaryactuator 920 until the robotic stand 125 moves the local computingdevice 120 into the instructed position. A separate rotary actuator 920may be associated with each axis 1028, 1022. The processing unit 910 maymonitor the current rotational position of the rotary actuator relativeto the instructed rotational position to ensure the robotic stand 125moves the local computing device 120 into the desired position.

FIG. 14 is a flowchart illustrating a set of operations 1400 forremotely controlling an orientation of a local computing device 120supported on a robotic stand 125 in accordance with an embodiment of thedisclosure. At operation 1410, a video session is established between aremote computing device 105 and a local computing device 120. The videosession may be established by a user of the remote computing device 105or a user of the local computing device 120 initiating a video clientmodule 220, 270 associated with the respective computing device 105,120. The video session may establish a video feed between the computingdevices 105, 120. In concert with operation 1210, the user establishingthe video session, whether of the local or remote computing device, mayload a workspace view. The workspace view 400 may be viewable andaccessible by a remote user during the video session and may give theuser pre-set locations for the local computer 120/robotic stand 125combination.

At operation 1420, a video feed is displayed on a screen of the remotecomputing device 105. The video display may include the conference roomview 500 as a separate control window to the video displayed on theremote computing device 105. The user of the remote computing device mayalso have the ability to configure or re-configure the saved pan andtilt locations associated with the other location around the conferenceroom table and the view of any additional areas/fixtures through editmode 610 of FIG. 6B.

At operation 1430, motion control data is received from a user of theremote computing device 105. The user of the remote computing device 105may input a positioning instruction by way of the motion control inputmodule 230. For example, an interactive workspace view interface may bedisplayed on a screen of the remote computing device 105, as notedabove, and may allow a user to input positioning instructions byselecting the various saved positions shown on the conference room viewinterface. By interacting with the workspace view interface, the usermay generate positioning instructions for transmission to the localcomputing device 120, the robotic stand 125, or both.

At operation 1440, the remote computing device 105 may transmit motioncontrol data including positioning instructions to the local computingdevice 120, the robotic stand 125, or both. The motion control data maybe transmitted from the remote computing device 105 to the localcomputing device 120 via the respective control module 225, 275real-time during a video session between the computing devices 105, 120.The motion control data may include motion commands such as positioninginstructions. The positioning instructions may include instructions topan the local computing device 120 about a pan axis in a specifieddirection, to tilt the local computing device about a tilt axis in aspecified direction, or both.

As discussed, a robotic stand 125 may include pan and tiltfunctionality. A portion of the stand 125 may be rotatable about a panaxis, and a portion of the stand 125 may be rotatable about a tilt axis.In some implementations, a user of a remote computing device 105 mayremotely orient a local computing device 120, which may be mounted ontothe robotic stand 125, by issuing motion commands via a communicationnetwork, such as the Internet, to the local computing device 120. Themotion commands may cause the stand 125 to move about one or more axes,thereby allowing the remote user to remotely control the orientation ofthe local computing device 120. In some implementations, the motioncommands may be initiated autonomously from within the local computingdevice 120.

The foregoing description has broad application. While the providedexamples are discussed in relation to a videoconference betweencomputing devices, it should be appreciated that the robotic stand maybe used as a pan and tilt platform for other devices such as cameras,mobile phones, and digital picture frames. Further, the robotic standmay operate via remote web control following commands manually input bya remote user or may be controlled locally by autonomous features of thesoftware running on a local computing device. Accordingly, thediscussion of any embodiment is meant only to be explanatory and is notintended to suggest that the scope of the disclosure, including theclaims, is limited to these examples. In other words, while illustrativeembodiments of the disclosure have been described in detail herein, itis to be understood that the inventive concepts may be otherwisevariously embodied and employed, and that the appended claims areintended to be construed to include such variations, except as limitedby the prior art.

The term “module” as used herein refers to any known or later developedhardware, software, firmware, artificial intelligence, fuzzy logic, orcombination of hardware and software that is capable of performing thefunctionality associated with that element.

All directional references (e.g., proximal, distal, upper, lower,upward, downward, left, right, lateral, longitudinal, front, back, top,bottom, above, below, vertical, horizontal, radial, axial, clockwise,and counterclockwise) are only used for identification purposes to aidthe reader's understanding of the present disclosure, and do not createlimitations, particularly as to the position, orientation, or use ofthis disclosure. Connection references (e.g., attached, coupled,connected, and joined) are to be construed broadly and may includeintermediate members between a collection of elements and relativemovement between elements unless otherwise indicated. As such,connection references do not necessarily infer that two elements aredirectly connected and in fixed relation to each other. Identificationreferences (e.g., primary, secondary, first, second, third, fourth,etc.) are not intended to connote importance or priority, but are usedto distinguish one feature from another. The drawings are for purposesof illustration only and the dimensions, positions, order and relativesizes reflected in the drawings attached hereto may vary.

The foregoing discussion has been presented for purposes of illustrationand description and is not intended to limit the disclosure to the formor forms disclosed herein. For example, various features of thedisclosure are grouped together in one or more aspects, embodiments, orconfigurations for the purpose of streamlining the disclosure. However,it should be understood that various features of the certain aspects,embodiments, or configurations of the disclosure may be combined inalternate aspects, embodiments, or configurations. In methodologiesdirectly or indirectly set forth herein, various steps and operationsare described in one possible order of operation, but those skilled inthe art will recognize that steps and operations may be rearranged,replaced, or eliminated or have other steps inserted without necessarilydeparting from the spirit and scope of the present disclosure. Moreover,the following claims are hereby incorporated into this DetailedDescription by this reference, with each claim standing on its own as aseparate embodiment of the present disclosure.

1. A method for operating a robotic stand supporting a computing device, the method comprising: displaying, by a display of a remote device, a control interface depicting a conference room that includes a schematic of a conference room table and a plurality of attendee positions; providing, responsive to a user of the remote device interacting with the control interface, a positioning instruction to orient the robotic stand about at least a pan axis or a tilt axis so that a display and a camera of the computing device faces at least one attendee position, wherein the robotic stand supporting the computing device is physically located in the conference room depicted by the control interface; and transmitting, by the remote device, over a communication network, a signal indicative of the positioning instruction to the robotic stand.
 2. The method of claim 1, further comprising: receiving a first video feed from the camera of the computing device displaying the attendee position selected in accordance with the positioning instructions; and transmitting a second video feed from a camera of the remote device to be shown on the display of the computing device.
 3. The method of claim 1, further comprising: receiving, responsive to the user of the remote device interacting with the control interface, a configuration instruction to change a shape of the conference room table depicted by the control interface; and altering the shape of the conference room table depicted by the control interface responsive to the configuration instruction.
 4. The method of claim 1, further comprising: receiving, from a server coupled to the computing device and the remote device, the control interface.
 5. The method of claim 1, further comprising: displaying a plurality of preset locations on the control interface depicting the conference room, wherein the plurality of preset locations correspond with attendee locations around a perimeter of the conference room table depicted by the control interface.
 6. The method of claim 1, further comprising: receiving, from the user of the remote device interacting with the control interface, a preset instruction to scan the conference room for presetting locations of the attendees; and setting the preset locations on the control interface as the robotic stand scans the conference room depicted by the control interface.
 7. The method of claim 1, further comprising: providing, responsive to an action of the user of the remote device interacting with the control interface, a configuration instruction to manipulate a video projector located in a physical conference room depicted by the control interface; and transmitting the configuration instruction to the computing device located in the physical conference room.
 8. A method of automatically tracking an object during a videoconference with a computing device supported on a robotic stand, the method comprising: receiving an image with a camera, wherein the camera provides pixel information of the image; transmitting an electrical signal containing the pixel information of the image to at least one processing unit; determining, by the at least one processing unit, a location of a source of the pixel information of the image; and rotating the robotic stand about at least one of a pan axis or a tilt axis without further user interaction to aim the computing device at the location of the source of the pixel information of the image.
 9. The method of claim 8, wherein rotating the robotic stand about at least one of a pan axis or a tilt axis comprises actuating a rotary actuator associated with the at least one of a pan axis or a tilt axis.
 10. The method of claim 9, further comprising generating, by the at least one processing unit, a motion command signal and transmitting the motion command signal to the rotary actuator to actuate the rotary actuator.
 11. A method for operation of a robotic stand supporting a computing device, the method comprising: displaying, by a display of a remote device, a control interface depicting a physical location that includes a plurality of robotic stands with respective computing devices; providing, responsive to a user of the remote device interacting with the control interface, a selection instruction selecting a region of the physical location for viewing with one of the plurality of robotic stands with respective computing devices, wherein each of the plurality of computing devices at least includes a display and a camera; and connecting, by the control interface, to at least one of the plurality of robotic stands including a respective computing device, wherein the at least one of the plurality of robotic stands including a respective computing device is selected based at least on proximity to the region of the physical location.
 12. The method of claim 11, wherein connecting, by the control interface, to at least one of the plurality of robotic stands including a respective computing device, wherein the at least one of the plurality of robotic stands including a respective computing device is selected based at least on proximity to the region of the physical location comprises: determining, by the control interface, which of the plurality of robotic stands including a respective computing device in close proximity to the region of the physical location is available; and transmitting, by the remote device, a connection request over a communications network to the robotic stand including the computing device determined to be available; and receiving, at the remote device, a video feed from the robotic stand including the computing device determined to be available, the video feed showing the region of the physical location.
 13. The method of claim 12, further comprising: generating, by the control interface, a positioning instruction based on the selected region of the physical location, the positioning instruction configured to orient the robotic stand including the computing device determined to be available o face the region of the physical location; and transmitting, by the remote device over the communications network, a signal indicative of the positioning instruction to the robotic stand including the computing device determined to be available.
 14. The method of claim 11, further comprising: providing, responsive to a user interacting with the control interface, a selection command selecting one of the plurality of robotic stands including a respective computing device; and transmitting, by the control interface, the selection command by a communications network to the selected one of the plurality of robotic stands including a respective computing device.
 15. The method of claim 12, further comprising: providing, responsive to the user of the remote device interacting with the control interface, a positioning instruction to orient the selected one of the plurality of robotic stands including a respective computing device about at least a pan axis or a tilt axis so that a display and a camera of the computing device faces a desired region of the physical location; and transmitting, by the remote device, over a communication network a signal indicative of the positioning instruction to the robotic stand. 